Joten minulla on vaikeuksia selvittää luettelon :: sort () asianmukainen käyttö osaluettelon suhteen. Tässä on asianmukainen koodi: jäsennelty opiskelija { char firstnm [20], lastnm [20]; int id, arvosana; }; luettelosList; // Merkityksetön koodi ... cout << "Anna oma nimesi, tunnuksesi ja arvosanasi. (Esim .: myfirst mylast 0 12) \ n"; cin >> data.firstnm >> data.lastnm >> data.id >> data.grade; sList.push_back (data); sList.sort (); Ongelma, jota yritän ratkaista, on käyttää sList.sort () -tunnistetta lajittelemaan tunnuksen mukaan. Minulla ei kuitenkaan ole aavistustakaan, kuinka siirtää se oikein luetteloon :: sort (). Kiitos etukäteen avusta / ajasta! EDIT: Ratkaisu oli yksinkertaisesti lisätä tämä strukturiini bool-operaattori <(const opiskelija & cmp) const { palautustunnus
2021-01-22 08:21:13
Sinun tulisi tarkastella std :: sort. (https://fi.cppreference.com/w/cpp/algorithm/sort) Toiminnolle on useita määritelmiä, ja yksi, jossa voit määrittää, mitä haluat lajitella. Katso myös tämä viesti, mielestäni se on mitä tarvitset: https://stackoverflow.com/a/21234017/6663947 Muokkaa: tämä on esimerkki vertailusta: sList.sort ([] (const opiskelija & a, const opiskelija & b) {return a.idvoid sort (Vertaa komp); Oletetaan, että haluat lajitella opiskelijaobjektit luettelossasi avaintunnuksen mukaan nousevassa järjestyksessä. Voit joko määrittää operaattorin